package Test;

/**
 * @author zwei
 * @create 2024-07-25 14:14
 */

public class Test01 {
    public static void main(String[] args) {
        int[] nums1 = {-9, 8, 6, -9, 6};
        int a = test(nums1);
        int []nums2={1,3,4,5,6,7};
        int b=test1(nums2);
        System.out.println(a);
        System.out.println(b);
    }

    //给你一个数组，这个数组中除了一个数字出现一次之外，其他数字都出现了两次，找出出现一次的数字。
    //异或
    public static int test(int[] nums) {
        int result = nums[0];
        for (int i = 1; i < nums.length; i++) {
            result ^= nums[i];
        }
        return result;
    }

    //给定一个包含[0,n]中n个数的数组，找出[0,n]中没有出现在数组中的那个数。
    //nums=[0,2,3]-->2
    public static int test1(int[] nums) {
        int result = 0;
        for (int i = 1; i < nums.length; i++) {
            result ^= nums[i];
        }
        for (int i = 0; i < nums.length; i++) {
            result ^= i;
        }
        return result;
    }

//    给定一个数组，包含从 1 到 N 所有的整数，但其中缺了两个数字。你能在 O(N) 时间内只用 O(1) 的空间找到它们吗？
//    以任意顺序返回这两个数字均可。

}
